Ref 其實就是 Reference(參考)的意思,也就是傳值和傳址裡面的址 (參考位址)
我們的Ref 是會襄在DOM上面的,目的是可以拿取、參照DOM相對應的React元素!
但因為父類別和子類別溝通的方式通常都是用Props和States,比較不建議用Ref,
因為這可能會破壞Component的封裝。
小菜鳥通常會在用focus的時候或是要在某個特定元素下動態加入元素的時候才會去透過Ref來取得DOM的位置。
不然都會盡量用Props和States去實現React。
透過React下的createRef function 去建立Ref
constructor(props){
super(props);
this.quantityInput=React.createRef();
}
建立玩Ref後,要綁定在html元素上
<input type="number"
ref={this.quantityInput}
/>
我們可以透過Ref裡的current來拿使用ref system的元素
const quantityInput=this.quantityInput.current;
取得使用ref 元素的值
const quantityInput=this.quantityInput.current;
let quantityValue=quantityInput.value;
取得ref 元素下的其他元素 (獲取元素後,可以對其作html dom的操作,例如focus,給予style等等...)
this.quantityInput.current.querySelector('這裡放DOM子元素或父元素(自己想要找的元素階層)')
以上是Ref的建立和應用的基礎,但除了小菜鳥說的那兩種情況,基本上還是不建議使用Ref啦~
下一篇我們會來粗略談一下Test方法,
還有我們要寫測試用的框架(Jest)及工具(Enzyme),
希望前十篇的React基礎小菜鳥有講的詳細,
好啦真的要來開始我們的測試了~加油啊!!! ٩(ˊᗜˋ )و 我們已經過了三分之一了~